#include <facade_pattern.h>
#include <iostream>

using namespace std;

void FaRectangle::draw()
{
    cout << "Rectangle::draw()" << endl;
}

void FaCircle::draw()
{
    cout << "Circle::draw()" << endl;
}

void FaSquare::draw()
{
    cout << "Square::draw()" << endl;
}

FaShapeMaker::FaShapeMaker()
{
    this->circle = new FaCircle();
    this->rectangle = new FaRectangle();
    this->square = new FaSquare();
}

void FaShapeMaker::drawCircle()
{
    this->circle->draw();
}

void FaShapeMaker::drawSquare()
{
    this->square->draw();
}

void FaShapeMaker::drawRectangle()
{
    this->rectangle->draw();
}
